package com.woniuxy.pxxt.service;

import com.woniuxy.pxxt.common.result.Result;
import com.woniuxy.pxxt.common.vo.CourseEditVo;
import com.woniuxy.pxxt.common.vo.CourseEttVo;
import com.woniuxy.pxxt.common.vo.SelectTrainVo;
import com.woniuxy.pxxt.common.vo.UserTrainAndCourseMsgVo;
import com.woniuxy.pxxt.common.vo.train.SetUserTrainVo;
import com.woniuxy.pxxt.dto.UserMsgDtoSkc;
import com.woniuxy.pxxt.entity.User;

import java.text.ParseException;

/**
 * <P> @Author: ideaAdmin
 * <P> TODO: Class
 * <P> TODO: 用户表(PxxtUser)表服务接口
 * <P> Date: 2022/3/7:13:19
 * <P> Description:
 */

public interface UserService {
    /**
     * <P>Author ideaAdmin
     * <P>TODO: 测试代码 就是查询user表里面的信息
     * <P>Date 8:47 2022/3/10
     * <P>* @param id
     * <P>* @return com.woniuxy.pxxt.entity.User
     **/
    User findById(Integer id);

    /**
     * <P>Author ideaAdmin
     * <P>TODO: 使用userid 加入到对应课程中
     * <P>Date 15:58 2022/3/7
     * <P>* @param userId
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     *
     * @param userId*/
    Result addUserToTrain(SetUserTrainVo userId);

    /**
     * <P>Author ideaAdmin
     * <P>TODO: 通过用户id 获取其信息
     * <P>Date 8:46 2022/3/10
     * <P>* @param userId
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     **/
    Result findUserMsg(Integer userId);

    /**
     *<P> @MethodName: findManagerPerson
     *<P> @TODO 查询出所有负责人
     *<P> @return: com.woniuxy.pxxt.common.result.Result
     *<P> @Date 2022/3/9 9:03
    **/
    Result findManagerPerson();

    /**
     * <P>Author ideaAdmin
     * <P>TODO:通过vo查询对象获取他参与培训项目的所有信息
     * <P>Date 11:34 2022/3/10
     * <P>* @param userId
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     **/
    Result findUserAllTrain(SelectTrainVo selectTrainVo) throws ParseException;

    /**
     * <P>Author ideaAdmin
     * <P>TODO: 通过用户对象 修改信息
     * <P>Date 19:30 2022/3/10
     * <P>* @param userDtoSkc
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     **/
    Result updateUser(UserMsgDtoSkc userMsgDtoSkc);

    /**
     * <P>Author ideaAdmin
     * <P>TODO: 通过vo条件对象 获得用户信息的课程和培训信息
     * <P>Date 10:41 2022/3/11
     * <P>* @param userTrainAndCourseMsgVo
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     **/
    Result getUserAllMsg(Integer currentPage, Integer pageSize, UserTrainAndCourseMsgVo userTrainAndCourseMsgVo);

    //新增用户
    Result addOne(UserMsgDtoSkc userMsgDtoSkc);

    //查找一个用户的所有的课程
    Result findAllCourse(Integer userId);

    /**
     * <P>Author ideaAdmin
     * <P>TODO:登录方法
     * <P>Date 14:29 2022/3/12
     * <P>* @param user
     * <P>* @return com.woniuxy.pxxt.common.result.Result
     **/
    Result userLogin(User user);

    Result findSomeCourse(CourseEttVo courseEttVo);
}
